<#
提交信息校验（原生 PowerShell）
用途：校验 Conventional Commits 格式；支持 --MsgFile 从钩子传入。
用法：
  pwsh -File scripts/windows/validate-commit-msg.ps1 -MsgFile .git/COMMIT_EDITMSG
#>
param([string]$MsgFile)

function Is-Conventional([string]$m) { return ($m -match '^(feat|fix|docs|style|refactor|perf|test|chore|build|ci|revert)(\(.+\))?:\s+.{1,100}$') }

$msg = $null
if ($MsgFile -and (Test-Path $MsgFile)) { $msg = (Get-Content -Raw $MsgFile).Trim() } else { $msg = Read-Host '输入提交信息' }
if (-not (Is-Conventional $msg)) { Write-Error "提交信息不符合规范：$msg"; exit 2 } else { Write-Host "提交信息校验通过"; exit 0 }
